/**************************************************************************************
*
*	Copyright (C) 2009 - 2012 Brent Andrew O. Chua - See LICENSE.txt for more info.
*		
*	Filename	-	ParameterScalar.cpp
*
*	Comments	-	See ParameterScalar.h
*
**************************************************************************************/
#include "../Include/ParameterScalar.h"

namespace Pulse
{
	ParameterScalar::ParameterScalar( void )
	{
		SetToZero();
	}

	ParameterScalar::ParameterScalar( ParameterScalar &rhs )
		: IParameter( rhs )
	{
		PSX_MemCopyPerByte( m_data, rhs.m_data, sizeof( m_data ) );
		IncrementChangeValue();
	}

	ParameterScalar::~ParameterScalar( void )
	{

	}

	void ParameterScalar::SetData( void *pData )
	{
		PSX_MemCopyPerByte( m_data, pData, sizeof( m_data ) );
		IncrementChangeValue();
	}


	void ParameterScalar::SetData( IParameter *pParam )
	{
		if ( pParam )
		{
			if ( pParam->GetType() == EParameter::SCALAR )
			{
				PSX_MemCopyPerByte( m_data, ((ParameterScalar*)pParam)->m_data, sizeof( m_data ) );
				IncrementChangeValue();
			}
		}
	}

	void ParameterScalar::SetToZero( void )
	{
		PSX_ZeroMem( m_data, sizeof(m_data) );
		IncrementChangeValue();
	}

}